DYNAMIC DOCUMENTS
Istar was originally designed (in its KBTools days) to assemble
construction contracts intelligently - to write a contract for two parties
that reflected their agreed intentions. It is in the process of being
generalized to allow it to compile more complex types of documents.
** These instructions are only brief; fuller ones will be made
available at the earliest opportunity. **
In general, documents are composed of pieces of text - titles,
headings, chapters, sections, sub-sections, paragraphs, sentences, etc. A
dynamic document is made up to suit your requirements, from selected pieces
like these. Istar allows you to specify what pieces could be selected, and
under what conditions.
** This version (1.087) of dynamic documents is usable but limited.
For instance, it recognises only sentences, paragraphs laid out like
clauses in a contract, and headings for those clauses. There is no
sectioning, titles, etc. A better version will emerge later. **
What you need for a dynamic document are the following objects in the
knowledge base:
- 1. A number of Text Fragment items to be optionally included in the
document, each of which has an attribute 'Included' (called 'Text
Fragment', or 'Contract Meaning' in earlier versions like 1.5). They are
expressed on the easel by a box group comprising two boxes, which express
two parts to the Fragment:
- the actual text of the fragment, expressed by the thinner box on top
- a Boolean (usually) attribute, expressed by a larger box below it,
which indicates whether this Fragment is to be included in a document or
not.
- As antecedent of each Included attribute, an inference net of
knowledge that allows the truth value of Included to be inferred,
- A Document item for each document created. This is linked to a number
of Text Fragments by Inserted relationships; those linked to it are
included in this document, those that are not so linked are excluded from
it. In this way, you can have several documents, each with a different set
of Fragments. A Fragment can be included in any number of different
documents.
- Normally all the Included attributes for Text Fragments that are to be
considered for inclusion in a document are linked to a Goal List, for ease
of inference.
With this arrangement, each Document is assembled from Text Fragments
chosen by the status (truth value) of their Included attributes. Each time
the inference net(s) antecedent to these attributes is run (e.g. by
RestGoals, InferGoals with the Goal List above), a different profile of
truth values is obtained, depending on the answers given by the user during
the run. Thus, each time, a different set of Text Fragments is linked to a
Document item.
There are three steps to actually creating a document, of which the second
and third are accomplished by via the Documents Panel that appears when you
hit the New Doc button on the KB Panel.
- Run the knowledge base with the Goal List of Included attributes; this
answers all the attributes and gives them a truth value.
- Hit the first large button on Documents Panel. When a document is
created, all the Text Fragment items are searched to find which of them
have the Included attribute answered and True. Those that have are linked
to the Document item by Inserted relationships. That creates the document,
but does not display it. We still need to construct and display its text.
- Hit the second large button on the Documents Panel. This makes a copy
of the text of all the text fragments included and assembles it into a
large text easel piece. It then opens a new screen and window and displays
the whole.
At present, the document is like a contract, with headings in a column down
the left side and the text in a column to the right. At present, each
paragraph is a single Text Fragment.
If you click on a paragraph in the document, then that Text Fragment and
all its antecedents is shown on the main Easel.
You can export the document in a variety of formats: IFF, Postscript and
HTML (at present TXT just gives HTML). Note that, at present, you must
have displayed the document before you can export it.
To remove the document, click its WindowClose gadget. The document item
itself is not deleted, so that you can reassemble it later if you wish.
To reassemble and display an earlier document, you can select it by the
selection gadget to the right of the second large button.
If you wish to name, modify or delete a Document item, just hit the See
button and up comes its Item Details Panel which allows you to do anything
that treating it as an item would do - name it, reorder its consequents
(i.e. its Text Fragments), delete it, etc.
You can keep several Document items, and all can share different subsets of
the Text Fragments. This means you can keep several versions of the same
document, for instance.
Obviously, before you carry out the above, you must have created a set of
Text Fragments. To do this, select the Text Fragment item type and place
the fragments at will. For each one:
- Give it a suitable name and meaning via its Items Details Panel.
- On the Item Details Panel hit the 'Text' button, and up comes a Text
panel allowing you to enter up to five lines of text. Each is a sentence
of the paragraph, and can be up to 512 characters long. (Five is
restrictive, of course; that will be changed later. Also, in future you
should be able to just write such text word-processor style, but that's for
the future.)
- (On the same Text panel there is space for a heading, but currently
(v1.087) it is inactive.)
- Create the inference net for its Included attribute.
That's it.
You might then find that the clauses of the document are in a random order
- not much good. So, there are two ways to alter the order:
- Put Dependency relationships between the text piece items (thinner)
boxes in the text piece box groups (does not always work properly yet),
- When you have 'made' the document, you can (laboriously) change their
order by selecting a clause and pressing '1' or 'n' buttons.
Copyright (c) Andrew
Basden 1998.